// SpryURLUtils.js - version 0.1 - Spry Pre-Release 1.6
//
// Copyright (c) 2007. Adobe Systems Incorporated.
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are met:
//
//   * Redistributions of source code must retain the above copyright notice,
//     this list of conditions and the following disclaimer.
//   * Redistributions in binary form must reproduce the above copyright notice,
//     this list of conditions and the following disclaimer in the documentation
//     and/or other materials provided with the distribution.
//   * Neither the name of Adobe Systems Incorporated nor the names of its
//     contributors may be used to endorse or promote products derived from this
//     software without specific prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
// POSSIBILITY OF SUCH DAMAGE.

var Spry;if(!Spry)Spry={};if(!Spry.Utils)Spry.Utils={};Spry.Utils.urlComponentToObject=function(ucStr,paramSeparator,nameValueSeparator)
{var o=new Object;if(ucStr)
{if(!paramSeparator)paramSeparator="&";if(!nameValueSeparator)nameValueSeparator="=";var params=ucStr.split(paramSeparator);for(var i=0;i<params.length;i++)
{var a=params[i].split(nameValueSeparator);var n=decodeURIComponent(a[0]?a[0]:"");var v=decodeURIComponent(a[1]?a[1]:"");if(v.match(/^0$|^[1-9]\d*$/))
v=parseInt(v);if(typeof o[n]=="undefined")
o[n]=v;else
{if(typeof o[n]!="object")
{var t=o[n];o[n]=new Array;o[n].push(t);}
o[n].push(v);}}}
return o;};Spry.Utils.getLocationHashParamsAsObject=function(paramSeparator,nameValueSeparator)
{return Spry.Utils.urlComponentToObject(window.location.hash.replace(/^#/,""),paramSeparator,nameValueSeparator);};Spry.Utils.getLocationParamsAsObject=function()
{return Spry.Utils.urlComponentToObject(window.location.search.replace(/^\?/,""));};Spry.Utils.getURLHashParamsAsObject=function(url,paramSeparator,nameValueSeparator)
{var i;if(url&&(i=url.search("#"))>=0)
return Spry.Utils.urlComponentToObject(url.substr(i+1),paramSeparator,nameValueSeparator);return new Object;};Spry.Utils.getURLParamsAsObject=function(url)
{var s;if(url&&(s=url.match(/\?[^#]*/))&&s)
return Spry.Utils.urlComponentToObject(s[0].replace(/^\?/,""));return new Object;};